Azure App Service on Linuxへデプロイした.NET Coreアプリを、IDEを使わずにAWS Elastic Beanstalkへ移行する
いわさです。
Azure App Serviceはデプロイされているモジュールのダウンロードが可能です。
そしてElastic Beanstalkはモジュールをアップロードして環境を作成します。
うまいことやればそのままファイル移植だけで移行出来るんじゃないかと思い、試してみました。
移行元(App Service on Linux)環境の作成
今回は、移行元環境はサッと作成しましょう。
WindowsのVisual Studio 2019からASP.NET Coreを作成し、App Service on Linuxへデプロイします。
デプロイ出来ました。
移行モジュールを取得する
FTP接続して取得することも可能なのですが、今回はバックアップ機能を使ってダウンロードしてみようかなと思います。
App Serviceのバックアップ機能を使うとZipダウンロード出来ます。
WEBSITE_RUN_FROM_PACKAGE
によって、wwwroot
かSitePackages
か取得先が変わります。
詳細は以下を参照してください。
アップロードバンドルを作成
Elastic Beanstalk用にアップロードバンドルを作成する必要があります。
今回の場合だと、マニフェストファイルを作成して、Zip圧縮ファイルに含めます。
マニフェストファイルの中身は上記を参考にしてください。
iwasa.takahito@hoge 20210827084148 % ls AzureToAws.Views.dll AzureToAws.runtimeconfig.json AzureToAws.Views.pdb Procfile AzureToAws.deps.json appsettings.Development.json AzureToAws.dll appsettings.json AzureToAws.exe web.config AzureToAws.pdb wwwroot iwasa.takahito@hoge 20210827084148 % vi aws-windows-deployment-manifest.json iwasa.takahito@hoge 20210827084148 % zip -r -X hoge.zip .
Beanstalkアプリケーションの作成
このhoge.zipをアップロードファイルに指定してBeanstalkアプリを作成します。
無事、App ServiceからBeanstalkへ移植出来ました。
実際にはアプリケーション設定などなど他にも移行に際して考慮しなければいけないことはありますが、一旦モジュールを移植して動かすことは出来ました。
まとめ
- App Serviceからダウンロードしたzipファイルをそのままアップロードして動かすことは出来ない
- Beanstalk用のバンドル手順を把握し、実施する必要がある
- バンドル手順さえしっかりしていれば、ソースコードを使った再デプロイはしなくても良い